package com.sg.dto.biz.bff.common;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Objects;

/**
 * @desc BffCurrentWorkCycleBudgetDto
 * @使用场景
 */
@Data
public class BffCurrentWorkCycleBudgetDto implements Serializable {

    /**
     * 归属内容表主键ID
     */
    @ApiModelProperty("归属内容表主键ID")
    private String entityId;

    /**
     * 数据结果ID
     */
    @ApiModelProperty("数据结果ID ")
    private String dataResultId;

    /**
     * 资金来源ID
     */
    @ApiModelProperty("资金来源ID")
    private String capitalSourceId;

    /**
     * 预算金额
     */
    @ApiModelProperty("预算金额")
    private Double budget;

    /**
     * 资金来源名称
     */
    @ApiModelProperty("资金来源名称")
    private String capitalSourceName;

    /**
     * 预算金额单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份 %:%
     */
    @ApiModelProperty("预算金额单位")
    private String budgetUnit;

    /**
     * 来源预算金额占比
     */
    @ApiModelProperty("来源预算金额占比")
    private Double sourceBudgetFundsProp;

    /**
     * 来源预算金额占比单位
     */
    @ApiModelProperty("来源预算金额占比单位")
    private String sourceBudgetFundsPropUnit;
    /**
     * 目标周期预算金额占比
     */
    @ApiModelProperty("目标周期预算金额占比")
    private Double targetCycleBudgetFundsProp;

    /**
     * 目标周期预算金额占比单位
     */
    @ApiModelProperty("目标周期预算金额占比单位")
    private String targetCycleBudgetFundsPropUnit;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        BffCurrentWorkCycleBudgetDto that = (BffCurrentWorkCycleBudgetDto) o;
        return entityId == that.entityId && dataResultId == that.dataResultId && capitalSourceId == that.capitalSourceId && budget == that.budget && capitalSourceName == that.capitalSourceName && budgetUnit == that.budgetUnit && sourceBudgetFundsProp == that.sourceBudgetFundsProp && sourceBudgetFundsPropUnit == that.sourceBudgetFundsPropUnit && targetCycleBudgetFundsProp == that.targetCycleBudgetFundsProp && targetCycleBudgetFundsPropUnit == that.targetCycleBudgetFundsPropUnit;
    }

    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), entityId, dataResultId, capitalSourceId, budget, capitalSourceName, budgetUnit, sourceBudgetFundsProp, sourceBudgetFundsPropUnit, targetCycleBudgetFundsProp, targetCycleBudgetFundsPropUnit);
    }

}
